let arr = [1,2,3,4,5,6,7,8,9,10] //定义一个数组用于进行递归

//使用递归对数组进行遍历
function bianArray(arr,i){ //传入一个数组和需要访问的下标值
    //终止条件
    if(arr === null || i >= arr.length-1){
        return ;
    }
    console.log(arr[i]);
    bianArray(arr,i+1); //继续调用这个函数,这个函数还会继续调用自己,直到i >= arr.length-1为止
}

console.log('===========使用递归对数组进行遍历===============');
bianArray(arr,0); // 从头开始遍历
bianArray(arr,6); // 从第6个元素开始遍历


class Node{
    constructor(value,next=null){
        this.value = value;
        this.next = next;
    }
}

let a = new Node('a')
let b = new Node('b')
let c = new Node('c')
let d = new Node('d')
a.next = b
b.next = c
c.next = d

//使用递归对链表进行遍历
function bianLink(node){
    //递归终止条件
    if(node === null){
        return ;
    }
    console.log(node.value);
    bianLink(node.next);
}

console.log('===========使用递归对链表进行遍历===============');
bianLink(a);